package org.fjsei.yewu.input;

import lombok.Getter;
import lombok.Setter;
import md.specialEqp.BusinessCat_Enum;
import md.specialEqp.RequestSta_Enum;
import md.specialEqp.inspect.ProtocolSta_Enum;

import java.time.LocalDate;
import java.util.List;

/**专用于添加-修改-删除 收费项，前端提交给后端反的信息，参数，
 * XxxInput实际上就是接口打包传递参数字段的容器，只要字段名字和数据类型正好一致的，有些字段可以省略的，那就可以到处复用同一个Input定义模型。
 * 也可以用于类似的变更操作接口：比如接口confirmTaskFee(id:ID!, inp: FeeItemInput!) : TaskComResp!
 * 注意这里可能有点随意：协议接口的输入输出通道的：添加参数名字类型； 允许没有真实对应的实体数据库表的一一对一的模型字段。
 */
@Getter
@Setter
public class RequestInput {
//    String  ptno;
    String  ispu;    //ID GlobalID
//    String  servu;
    String  crman;
    String  director;
    String  auditor;
    String  manager;

//    String  type;
    String  mod;    //  类型
    //申请发起人的输入 json{}
    String  dat;


//    Boolean  entrust;       //null: 任意 委托法定
//    BusinessCat_Enum  bsType;
//    String  ad;     //地区的ID
//    String  transferor;
//    LocalDate complDate;
    //graphQL：前端采用String,后端映射为Double的：中间件可对数据类型自动转换。
//    Double  charge;
    LocalDate mdtime;
    String  aux;
//    String  pttype;      //协议种类
    //关联的设备
//    List<String>  devs;         //devs: [ID!]

    //删除取消操作的理由说明：
    String reason;
    //复合接口？     部分状态也可以做修改。
    RequestSta_Enum status;
    //多选的过滤器组合字段：
    List<RequestSta_Enum>  statusx;      //协议单的状态:前端可设置快捷选择组合。

    String  office;     //最后责任人dispatcher科室ID
    String  dep;        //最后责任人dispatcher检验部门ID
    LocalDate date1;        //生成时间crDate 区间选择：开始时间
    LocalDate date2;        //选择：结束时间(包含这一天）
    //两个办法会报错！.LocalDateTime' for property 'qdate1': no matching editors or conversion strategy found只好手动转换！.atStartOfDay()：
    //不能用  LocalDateTime  qdate1;
    LocalDate  qdate1;        //最新修改时间mdtime 区间选择：开始时间
    LocalDate  qdate2;        //选择：结束时间（不包含这一天）:对比的实体字段是LocalDateTime类型的。
    //是否本人创建的协议申请单: #特殊过滤，免去选择User;直接简化。
//    Boolean  mecrman;

    String  task;    //暂停监检申请Task的GlobalID
}

